#include <stdio.h>
#include <string.h>

#include "text.h"
#include "editbox.h"

#ifdef __DEBUG__
#define __E(fmt, args...) fprintf(stderr, "TEXT ERROR [%d]: " fmt, __LINE__, ## args)
#define __W(fmt, args...) fprintf(stderr, "TEXT WARNING [%d]: " fmt, __LINE__, ## args)
#else
#define __E(fmt, args...)
#define __W(fmt, args...)
#endif

int text_addChar(char *msg, char ch) {
    int tamanhoFrase = strlen(msg);
    if (tamanhoFrase + 1 == EDITBOX_MAX_TEXT) {
        __E("Nao foi possivel adicionar o caracter\n");
        return TEXT_FAILURE;
    } else {
        msg[tamanhoFrase] = ch;
        msg[tamanhoFrase + 1] = '\0';
        return TEXT_SUCCESS;
    }
}

int text_delChar(char *msg) {
    if (strlen(msg) > 0) {
        msg[strlen(msg) - 1] = '\0';
        return TEXT_SUCCESS;
    } else return TEXT_FAILURE;
}

int text_replaceChar(char *msg, char ch) {
    if (strlen(msg) == 0) {
        __E("Nao foi possivel alterar o caracter\n");
        return TEXT_FAILURE;
    }
    if (text_delChar(msg) == TEXT_FAILURE) {
        __E("Nao foi possivel alterar o caracter\n");
        return TEXT_FAILURE;
    }
    if (text_addChar(msg, ch) == TEXT_FAILURE) {
        __E("Nao foi possivel alterar o caracter\n");
        return TEXT_FAILURE;
    }
    return TEXT_SUCCESS;
}
